#ifndef MESHVIEWCONFIG_HPP
#define MESHVIEWCONFIG_HPP
#include <vector>
// Viewing Configuration for a mesh.  (1 for a base mesh, 1 for subdivision mesh)
struct MeshViewConfig
{
   MeshViewConfig()
    : mFlipMaterials(false),
      mShowVerts(false),
      mOutlineFaces(true),
      mOutlinePolys(true),
      mShowCreaseVerts(false),
      mShowCreaseEdges(false),
      mShowFaces(true),
      mShowPolys(false),
      mShowLandmarks(true),
      mFaceAlpha(1.0f),
      mPolyAlpha(1.0f),
      mPolyScale(1.0f),
      mHiddenRegions()
   {
   }

   template <typename AR>
   void serialize(AR& aAr, unsigned int aVersion)
   {
      aAr & mFlipMaterials & mShowVerts & mOutlineFaces & mOutlinePolys
          & mShowCreaseVerts & mShowCreaseEdges & mShowFaces & mShowWireframe
          & mShowPolys & mFaceAlpha & mPolyAlpha & mPolyScale & mHiddenRegions;
   }

   bool              mFlipMaterials;
   
   bool              mShowVerts;
   bool              mOutlineFaces;
   bool              mOutlinePolys;
   bool              mShowCreaseVerts;
   bool              mShowCreaseEdges;
   bool              mShowFaces;
   bool              mShowWireframe;
   bool              mShowPolys;
   bool              mShowLandmarks;

   float             mFaceAlpha;
   float             mPolyAlpha;
   float             mPolyScale;

   std::vector<int>  mHiddenRegions;
};

#endif